package alp.starcode.sanping.framework.base.model;

import alp.starcode.sanping.framework.database.mariadb.mybatis.entity.*;
import lombok.AllArgsConstructor;
import lombok.Data;

import java.util.List;
import java.util.Set;

/**
 * 当前登录用户信息实体类
 *
 * @author liwang
 * @date 2023/4/11 15:02
 */
@Data
@AllArgsConstructor
public class LoginUser {

    /**
     * 用户流水号
     */
    private String userId;

    /**
     * 用户姓名
     */
    private String username;

    /**
     * 登录名
     */
    private String loginName;

    /**
     * 部门ID
     */
    private String deptId;

    /**
     * 用户唯一标识
     */
    private String token;

    /**
     * 登录时间
     */
    private Long loginTime;

    /**
     * 过期时间
     */
    private Long expireTime;

    /**
     * 登录IP地址
     */
    private String ipaddr;

    /**
     * 登录地点
     */
    private String loginLocation;

    /**
     * 浏览器类型
     */
    private String browser;

    /**
     * 操作系统
     */
    private String os;

    /**
     * 权限列表
     */
    private Set<String> permissions;

    /**
     * openid
     */
    private String openId;


    /**
     * 用户信息
     */
    private User user;

    /**
     * 角色集合
     */
    private List<Role> roles;

    /**
     * 部门集合
     */
    private List<Department> departments;

    /**
     * 用户角色信息
     */

    private List<UserRole> userRoles;

    /**
     * 系统功能信息
     */
    private List<SysFunc> sysFuncs;

    /**
     * 数据权限
     */
    private List<String> departmentIds;

    /**
     * tcastoken
     */
    private String casToken;


    public LoginUser() {
        super();
    }
}
